package com.zlict.admin.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zlict.common.annotation.Excel;
import com.zlict.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 项目立项信息对象 project_approval
 * 
 * @author dzw
 * @date 2025-06-10
 */
public class ProjectApproval extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    private Long id;

    /** 项目id */
    @Excel(name = "项目id")
    private Long projectId;

    /** 申请人 */
    @Excel(name = "申请人")
    private Long applicant;

    private Date applicantDate;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date start;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date end;

    /** 主要技术经济目标 */
    @Excel(name = "主要技术经济目标")
    private Long target;

    /** 项目主要研究内容 */
    @Excel(name = "项目主要研究内容")
    private String researchContent;

    /** 项目预期目标 */
    @Excel(name = "项目预期目标")
    private String projectExpect;

    /** 项目任务书地址 */
    @Excel(name = "项目任务书地址")
    private String taskBook;

    /** 项目立项决议书地址 */
    @Excel(name = "项目立项决议书地址")
    private String projectProposal;


    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setProjectId(Long projectId) 
    {
        this.projectId = projectId;
    }

    public Long getProjectId() 
    {
        return projectId;
    }

    public void setApplicant(Long applicant) 
    {
        this.applicant = applicant;
    }

    public Long getApplicant() 
    {
        return applicant;
    }

    public void setStart(Date start) 
    {
        this.start = start;
    }

    public Date getStart() 
    {
        return start;
    }

    public void setEnd(Date end) 
    {
        this.end = end;
    }

    public Date getEnd() 
    {
        return end;
    }

    public void setTarget(Long target) 
    {
        this.target = target;
    }

    public Long getTarget() 
    {
        return target;
    }

    public void setResearchContent(String researchContent) 
    {
        this.researchContent = researchContent;
    }

    public String getResearchContent() 
    {
        return researchContent;
    }

    public void setProjectExpect(String projectExpect) 
    {
        this.projectExpect = projectExpect;
    }

    public String getProjectExpect() 
    {
        return projectExpect;
    }

    public void setTaskBook(String taskBook) 
    {
        this.taskBook = taskBook;
    }

    public String getTaskBook() 
    {
        return taskBook;
    }

    public void setProjectProposal(String projectProposal) 
    {
        this.projectProposal = projectProposal;
    }

    public String getProjectProposal() 
    {
        return projectProposal;
    }


    public Date getApplicantDate() {
        return applicantDate;
    }

    public void setApplicantDate(Date applicantDate) {
        this.applicantDate = applicantDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectId", getProjectId())
            .append("applicant", getApplicant())
                .append("applicantDate", getApplicantDate())
            .append("start", getStart())
            .append("end", getEnd())
            .append("target", getTarget())
            .append("researchContent", getResearchContent())
            .append("projectExpect", getProjectExpect())
            .append("taskBook", getTaskBook())
            .append("projectProposal", getProjectProposal())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("isDelete", getIsDelete())
            .append("isEnable", getIsEnable())
            .toString();
    }
}
